using System;
using System.Collections.Generic;
using System.Text;

using XGAE.Framework;

namespace XGAE.Body.Motion
{
    /// <summary>
    /// This class contains all of the code implemented by the user.  It includes initialisation
    /// and shutdown as well as private helpers for the interface implementation.
    /// </summary>
    class MotionModule : Component, IMotionBase
    {        
        #region C'tors

        /// <summary>
        /// Constructor calls the Base to perform automatic initialisation, then the standard 
        /// Component initialisation. 
        /// </summary>
        protected MotionModule()
        :	base("Motion")
        {
            //
            // TODO: your custom data-structure initialisation goes here
            //
        }

        #endregion

        #region Custom Implementation

        //
        // TODO: declare custom variables and helper functions as members here
        //

        #endregion

        #region IMotionBase Implementation

        private Backend.IMotion _backend;

        public Backend.IMotion Backend
        {
            get { return this._backend; }
            set { this._backend = value; }
        }

        private float _strength;

        public float Strength
        {
            get { return this._strength; }
            set { this._strength = value; }
        }

        private float _accuracy;

        public float Accuracy
        {
            get { return this._accuracy; }
            set { this._accuracy = value; }
        }

        #endregion

        #region Common Interface

        /// <summary>
        /// Custom initialisation of the data once everything has been loaded.
        /// Post-process the data once it has been loaded an initialise the component.
	    /// </summary>
        public override void Init()
        {
            //
            // TODO: your custom code goes here
            //
        }

	    /// <summary>
        /// Prepare the data before everything is saved automatically.
        /// Pre-process the data before saving it to disk, and shutdown the component. 
	    /// </summary>
        public override void Done()
        {
            //
            // TODO: your custom code goes here
            //
        }

        #endregion
    }
}
